home *** CD-ROM | disk | FTP | other *** search
- /* Chdir for the Macintosh.
- Public domain by Guido van Rossum, CWI, Amsterdam (July 1987).
- Pathnames must be Macintosh paths, with colons as separators. */
-
- #include "macdefs.h"
-
- #ifdef __MWERKS__
- /* XXXX All compilers should use this, really */
- #include <LowMem.h>
- #else
- /* Last directory used by Standard File */
- #define SFSaveDisk (*(short *)0x214)
- #define CurDirStore (*(long *)0x398)
- #endif
-
- /* Change current directory. */
-
- int
- chdir(path)
- char *path;
- {
- WDPBRec pb;
-
- pb.ioNamePtr= (StringPtr) Pstring(path);
- pb.ioVRefNum= 0;
- pb.ioWDDirID= 0;
- if (PBHSetVol(&pb, FALSE) != noErr) {
- errno= ENOENT;
- return -1;
- }
- if (PBHGetVol(&pb, FALSE) == noErr) {
- /* Set the Standard File directory */
- #ifdef __MWERKS__
- LMSetSFSaveDisk(-pb.ioWDVRefNum);
- LMSetCurDirStore(pb.ioWDDirID);
- #else
- SFSaveDisk= -pb.ioWDVRefNum;
- CurDirStore= pb.ioWDDirID;
- #endif
- }
- return 0;
- }
-